home *** CD-ROM | disk | FTP | other *** search
/ Delphi Programmer's Power Pack / Delphi Volume 1.iso / e_to_l / kpsecure / install.exe / KPSGDEMO / KPDEMO.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-05-20  |  6.7 KB  |  249 lines

  1. unit Kpdemo;
  2.  
  3. interface
  4.  
  5. uses
  6.     {Custom added uses clause}
  7.     KpSGCnst, SysUtils, Dialogs, KpForm2,
  8.     {Auto added uses clause}
  9.     WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Buttons,
  10.   StdCtrls, KpSecure, ExtCtrls, DB, DBTables, Tabs, Spin, Kpgrdlst;
  11.  
  12. const
  13.     ksLogIn = '%s currently logged into system';
  14.     ksFailedLogIn = 'User failed login - Nobody logged in';
  15.     ksSL = 'Security level is: %d';
  16.  
  17. type
  18.   TForm1DLG1 = class(TForm)
  19.     KpSecurityGuard1: TKpSecurityGuard;
  20.     Panel1: TPanel;
  21.     Image1: TImage;
  22.     Table1: TTable;
  23.     Notebook1: TNotebook;
  24.     TabSet1: TTabSet;
  25.     Panel2: TPanel;
  26.     Memo1: TMemo;
  27.     GroupBox1: TGroupBox;
  28.     BitBtn2: TBitBtn;
  29.     BitBtn1: TBitBtn;
  30.     Memo2: TMemo;
  31.     GroupBox3: TGroupBox;
  32.     CheckBox1: TCheckBox;
  33.     CheckBox2: TCheckBox;
  34.     BitBtn5: TBitBtn;
  35.     BitBtn6: TBitBtn;
  36.     KpGuardList1: TKpGuardList;
  37.     BitBtn3: TBitBtn;
  38.     BitBtn4: TBitBtn;
  39.     GroupBox2: TGroupBox;
  40.     BitBtn7: TBitBtn;
  41.     CheckBox3: TCheckBox;
  42.     RadioGroup1: TRadioGroup;
  43.     ListBox1: TListBox;
  44.     Edit1: TEdit;
  45.     Edit2: TEdit;
  46.     Edit3: TEdit;
  47.     Label3: TLabel;
  48.     Label4: TLabel;
  49.     Label5: TLabel;
  50.     Label6: TLabel;
  51.     GroupBox4: TGroupBox;
  52.     Label7: TLabel;
  53.     Label8: TLabel;
  54.     Label9: TLabel;
  55.     Label10: TLabel;
  56.     Label11: TLabel;
  57.     Label12: TLabel;
  58.     Label13: TLabel;
  59.     Label14: TLabel;
  60.     Label15: TLabel;
  61.     Label16: TLabel;
  62.     Panel3: TPanel;
  63.     BitBtn8: TBitBtn;
  64.     Memo3: TMemo;
  65.     Label2: TLabel;
  66.     Label1: TLabel;
  67.     BitBtn9: TBitBtn;
  68.     Timer1: TTimer;
  69.     procedure FormCreate(Sender: TObject);
  70.     procedure TabSet1Change(Sender: TObject; NewTab: Integer;
  71.       var AllowChange: Boolean);
  72.     procedure BitBtn1Click(Sender: TObject);
  73.     procedure BitBtn2Click(Sender: TObject);
  74.     procedure CheckBox1Click(Sender: TObject);
  75.     procedure CheckBox2Click(Sender: TObject);
  76.     procedure KpSecurityGuard1AllowDelete(Sender: TObject;
  77.       var AllowEvent: Boolean; sIdent: String);
  78.     procedure KpSecurityGuard1SecurityAction(Sender: TObject;
  79.       const SecurityEvent: TSecurityEvent; EventInfo: TEventInfo);
  80.     procedure BitBtn5Click(Sender: TObject);
  81.     procedure BitBtn6Click(Sender: TObject);
  82.     procedure BitBtn3Click(Sender: TObject);
  83.     procedure BitBtn4Click(Sender: TObject);
  84.     procedure Edit1Change(Sender: TObject);
  85.     procedure Edit2Change(Sender: TObject);
  86.     procedure Edit3Change(Sender: TObject);
  87.     procedure KpSecurityGuard1FailedVerify(Sender: TObject);
  88.     procedure KpSecurityGuard1FailedLogIn(Sender: TObject);
  89.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  90.     procedure BitBtn8Click(Sender: TObject);
  91.     procedure FormActivate(Sender: TObject);
  92.     procedure Timer1Timer(Sender: TObject);
  93.   private
  94.     { Private declarations }
  95.   public
  96.     { Public declarations }
  97.   end;
  98.  
  99. var
  100.   Form1DLG1: TForm1DLG1;
  101.  
  102. implementation
  103.  
  104. {$R *.DFM}
  105.  
  106. procedure TForm1DLG1.FormCreate(Sender: TObject);
  107. begin
  108.     {Caption}
  109.     Caption := Format( Caption, [ LoadStr( SKpVersion ) ] );
  110.     {Tabs}
  111.     TabSet1.Tabs := NoteBook1.Pages;
  112.     {Log}
  113.     KpSecurityGuard1.StandardLogFile := ChangeFileExt( Application.EXEName, '.LOG' );
  114.     {TTable}
  115.     Table1.TableName := ExtractFilePath( Application.EXEName ) + 'USERID.DB';
  116.     Table1.Active := TRUE;
  117.     {Labels}
  118.     Edit1.Text := KpSecurityGuard1.UserLabel;
  119.     Edit2.Text := KpSecurityGuard1.PasswordLabel;
  120.     Edit3.Text := KpSecurityGuard1.SecurityLevelLabel;
  121.     Memo3.Lines.LoadFromFile( 'README.TXT' );
  122. end;
  123.  
  124. procedure TForm1DLG1.TabSet1Change(Sender: TObject; NewTab: Integer;
  125.   var AllowChange: Boolean);
  126. begin
  127. NoteBook1.PageIndex := NewTab;
  128. if NewTab = 2 then Memo1.Lines.LoadFromFile( KpSecurityGuard1.StandardLogFile );
  129. if Form1 <> nil then Form1.Visible := NewTab = 1;
  130. end;
  131.  
  132. procedure TForm1DLG1.BitBtn1Click(Sender: TObject);
  133. begin
  134. KpSecurityGuard1.LogIn;
  135. end;
  136.  
  137. procedure TForm1DLG1.BitBtn2Click(Sender: TObject);
  138. begin
  139. KpSecurityGuard1.LogOut;
  140. end;
  141.  
  142. procedure TForm1DLG1.CheckBox1Click(Sender: TObject);
  143. begin
  144.     KpSecurityGuard1.ShowPassword := TCheckBox( Sender ).Checked;
  145. end;
  146.  
  147. procedure TForm1DLG1.CheckBox2Click(Sender: TObject);
  148. begin
  149.     if TCheckBox( Sender ).Checked then
  150.         KpSecurityGuard1.SecurityLevelField := 'SecLev'
  151.     else
  152.         KpSecurityGuard1.SecurityLevelField := '';
  153. end;
  154.  
  155. procedure TForm1DLG1.KpSecurityGuard1AllowDelete(Sender: TObject;
  156.   var AllowEvent: Boolean; sIdent: String);
  157. begin
  158.     if ( sIdent = '4572' ) OR ( sIdent = 'JAMES' ) OR ( sIdent = 'MANAGER' ) then
  159.      begin
  160.         ShowMessage( 'This DEMO is setup so that User ID''s:'#10#13 +
  161.                             #09'4572, JAMES and MANAGER'#10#13'can''t be added, edited or deleted!' );
  162.         AllowEvent := FALSE;
  163.      end;
  164. end;
  165.  
  166. procedure TForm1DLG1.KpSecurityGuard1SecurityAction(Sender: TObject;
  167.   const SecurityEvent: TSecurityEvent; EventInfo: TEventInfo);
  168. begin
  169.     if SecurityEvent = seFailedLogIn then Label1.Caption := ksFailedLogIn;
  170.     Label2.Caption := Format( ksSL, [ KpSecurityGuard1.SecurityLevel ] )
  171. end;
  172.  
  173. procedure TForm1DLG1.BitBtn5Click(Sender: TObject);
  174. begin
  175.     KpSecurityGuard1.VerifyPassword;
  176. end;
  177.  
  178. procedure TForm1DLG1.BitBtn6Click(Sender: TObject);
  179. begin
  180.     KpSecurityGuard1.ChangePassword;
  181. end;
  182.  
  183. procedure TForm1DLG1.BitBtn3Click(Sender: TObject);
  184. begin
  185.     KpSecurityGuard1.EditUser;
  186. end;
  187.  
  188. procedure TForm1DLG1.BitBtn4Click(Sender: TObject);
  189. begin
  190.     KpSecurityGuard1.EditUserList;
  191. end;
  192.  
  193. procedure TForm1DLG1.Edit1Change(Sender: TObject);
  194. begin
  195.     KpSecurityGuard1.UserLabel := TEdit( Sender ).Text;
  196. end;
  197.  
  198. procedure TForm1DLG1.Edit2Change(Sender: TObject);
  199. begin
  200.     KpSecurityGuard1.PasswordLabel := TEdit( Sender ).Text;
  201. end;
  202.  
  203. procedure TForm1DLG1.Edit3Change(Sender: TObject);
  204. begin
  205.     KpSecurityGuard1.SecurityLevelLabel := TEdit( Sender ).Text;
  206. end;
  207.  
  208. procedure TForm1DLG1.KpSecurityGuard1FailedVerify(Sender: TObject);
  209. begin
  210.     ShowMessage( 'User just failed verify' );
  211. end;
  212.  
  213. procedure TForm1DLG1.KpSecurityGuard1FailedLogIn(Sender: TObject);
  214. begin
  215.     ShowMessage( 'User just failed Login' );
  216. end;
  217.  
  218. procedure TForm1DLG1.FormClose(Sender: TObject; var Action: TCloseAction);
  219. begin
  220.     KpSecurityGuard1.LogOut;
  221.     Memo3.Lines.SaveToFile( 'README.TXT' );
  222. end;
  223.  
  224. procedure TForm1DLG1.BitBtn8Click(Sender: TObject);
  225. var f : TextFile;
  226. begin
  227.     AssignFile( f, KpSecurityGuard1.StandardLogFile );
  228.     Rewrite( f );
  229.     Memo1.Lines.LoadFromFile( KpSecurityGuard1.StandardLogFile );
  230. end;
  231.  
  232. procedure TForm1DLG1.FormActivate(Sender: TObject);
  233. begin
  234.     {Form1}
  235.     Form1.KpGuardList1.SecurityGuard := KpSecurityGuard1;
  236. end;
  237.  
  238. procedure TForm1DLG1.Timer1Timer(Sender: TObject);
  239. begin
  240. with KpSecurityGuard1 do
  241.  begin
  242.     if Logged then Label1.Caption := Format( ksLogIn, [ User ] )
  243.     else Label1.Caption := Format( ksLogIn, [ 'No one' ] );
  244.     Label2.Caption := Format( ksSL, [ SecurityLevel ] );
  245.  end;
  246. end;
  247.  
  248. end.
  249.